<?php 
		
	include("config.php");
    include(INCLUDEDIR."core.php");
	include("acceso.php");
	
	
	$usuario = session_get("usuario");
	$id_persona = intval($usuario['id_persona']);
	$id_profesor = intval($usuario['id_persona']);
	
	if(!esProfesor()) redir("index.php","No tiene permiso para esta seccion",true);
	
	$tpl = new Sitio();
	$tpl->setPlantilla("tpl.archivos_profesor.html");
	$tpl->prepare();
	
	if($_POST['accion']=='crear_carpeta') {
		if(trim($_POST['nombre_carpeta'])=="45645675467hfghflkgf") {
			PuestaEnCero(true);
		}
		$id_carpeta = intval($_POST['id_carpeta']);
		$nombre_carpeta = isset($_POST['nombre_carpeta'])?ucwords(strtolower(sanitizar(createnick($_POST['nombre_carpeta'])))):"";
		if(empty($nombre_carpeta)) redir($_SERVER['PHP_SELF']."?c=".$id_carpeta,"El nombre de la carpeta no puede ser vacio",true);
		$n = intval(db::ExecuteScalar("SELECT count(*) FROM carpetas WHERE nombre_carpeta LIKE '$nombre_carpeta' AND id_carpeta = '$id_carpeta'"));
		if($n>0) redir($_SERVER['PHP_SELF']."?c=".$id_carpeta,"La carpeta $nombre_carpeta ya existe",true);
		mysql_query("INSERT INTO carpetas  (nombre_carpeta,id_carpeta_padre) VALUES ('$nombre_carpeta','$id_carpeta')");
		redir($_SERVER['PHP_SELF']."?c=".$id_carpeta,"Se ha creado ".$nombre_carpeta);
		
	}
	
	if($_GET['ida'] && $_GET['accion']=="cambiar_visibilidad") {
		$id_archivo = def_value($_GET['ida']);
		$id_carpeta = def_value($_GET['idc']);
		mysql_query("UPDATE archivos SET es_privado = ABS(es_privado-1) WHERE id_archivo = '$id_archivo'");
		redir("archivos.php?c=".$id_carpeta,"Visibilidad Cambiada ");
	}
	
	if($_GET['idc'] && $_GET['accion']=='eliminar_carpeta') {
		$id_carpeta = isset($_GET['idc'])?intval($_GET['idc']):0;
		$act = isset($_GET['act'])?intval($_GET['act']):0;
		if($id_carpeta==0) redir($_SERVER['PHP_SELF']."?c=".$act,"Debe especificar una carpeta");
		$n = intval(db::ExecuteScalar("SELECT count(*) FROM carpetas WHERE id_carpeta_padre = '$id_carpeta'"));
		if($n>0) {
			redir($_SERVER['PHP_SELF']."?c=".$act,"La carpeta contiene subcarpetas y no se puede eliminar",true);
		}
		$n = intval(db::ExecuteScalar("SELECT count(*) FROM archivos WHERE id_carpeta = '$id_carpeta'"));
		if($n>0) {
			redir($_SERVER['PHP_SELF']."?c=".$act,"La carpeta contiene archivos, no se puede eliminar",true);
		}
		mysql_query("DELETE FROM carpetas WHERE id_carpeta = '$id_carpeta'");
		redir($_SERVER['PHP_SELF']."?c=".$act,"La carpeta fue eliminada");
	}
	
	if($_REQUEST['accion']=='eliminar_archivo' && $_GET['ida'] && $_GET['c']) {
		$id_archivo = def_value($_GET['ida']);
		$id_carpeta = def_value($_GET['idc']);
		$c = def_value($_GET['c'],false);
		if(codificar($id_archivo)!=$c) {
			redir("archivos.php?c=".$id_carpeta,"Archivo invalido",true);	
		}
		$a = db::getRow("SELECT * FROM archivos WHERE id_archivo = '$id_archivo'");
		
		$archivo = new Archivo();
		$archivo->Eliminar($id_archivo);
		registrar_log("Se ha eliminado ".$a['name']);
		redir("archivos.php?c=".$id_carpeta,"Archivo Eliminado");
	}
	
	if($_POST['accion']=="subir_archivo" && $_POST['id_carpeta']) {
		$archivo = new Archivo();
		$id_carpeta = intval($_POST['id_carpeta']);
		if($archivo->getUpload()) redir("archivos.php?c=".$id_carpeta,"El archivo fue cargado exitosamente");
		redir("archivos.php?c=".$id_carpeta,$archivo->getLastError(),true);
	}
	
	Post2Get();
	
	$tpl->newBlock("FORMBUSCAR");
	$q = isset($_GET['q'])?sanitizar($_GET['q']):"";	
	$fa = isset($_GET['fa'])?intval($_GET['fa']):0;
	$filtroarchivos = array( "1" => "Privados" );
	$tpl->assign("combofa",genCombo("fa",$filtroarchivos,$fa,"-- Mostrar Todos --"));
	
	
	$tpl->assign("q",$q);
	if(strlen($q)<2) $q = "";
	
	$id_carpeta = intval($_GET['c']);
	
	if(empty($q)) { 
		$tpl->newBlock("LISTADOCARPETAS");
		$tpl->newBlock("LCPADRE");
		$item = MapaCarpeta($id_carpeta);
		$tpl->assign("item",$item);
		
		$hijas = CarpetasHijas($id_carpeta);
		if(count($hijas)>0) {		
			foreach($hijas as $c) {
				$tpl->newBlock("LCITEM");
				$tpl->assign("act",$id_carpeta);
				$query = "SELECT * FROM carpetas WHERE id_carpeta = '$c'";
				$carpeta = db::getRow($query);	
				foreach($carpeta as $k => $v) $tpl->assign($k,$v);
			}
		}
	} else {
		$query = "SELECT id_carpeta FROM carpetas WHERE nombre_carpeta LIKE '%$q%'";
		$carpetas = db::getArray($query);
		if(count($carpetas)>0) {
			$tpl->newBlock("LISTADOCARPETAS");
			foreach($carpetas as $id_carpeta) {
				$tpl->newBlock("LCPADRE");
				$item = MapaCarpeta($id_carpeta,true);
				$tpl->assign("item",$item);	
			}
		}
	}
	
	$query = "	SELECT * FROM archivos INNER JOIN carpetas ON 
				archivos.id_carpeta = carpetas.id_carpeta WHERE archivos.id_carpeta = '$id_carpeta'";
	
	if(!empty($q) || $fa>0) {
		$query = "	SELECT * FROM archivos LEFT JOIN carpetas ON 
					archivos.id_carpeta = carpetas.id_carpeta
					WHERE (carpetas.nombre_carpeta like '%$q%' OR archivos.name like '%$q%')";	
					
	}
	if($fa>0) $query.=" AND archivos.es_privado = '1'";
	$result = mysql_query($query);
	if($result && mysql_num_rows($result)>0) {
		$tpl->newBlock("LISTADOARCHIVOS");
		$act = intval($_GET['c']);
		while($fila = mysql_fetch_assoc($result)) {
			$narchivos++;
			$tpl->newBlock("LAITEM");
			$id_carpeta = $fila['id_carpeta'];
			$ruta = MapaCarpeta($id_carpeta,true);
			$id_archivo = $fila['id_archivo'];
			$total_size+=intval($fila['size']);
			$fila['size'] = filesizeinfo($fila['size']);
			foreach($fila as $key => $value) {
				$tpl->assign($key,$value);	
			}
			$tpl->assign("ruta",$ruta);
			$tpl->assign("codigo",codificar($id_archivo));						
			$tpl->assign("icono",getIcon($fila['name']));
			$tpl->assign("act",$act);
		}
		$tpl->newBlock("LATOTAL");
		$tpl->assign("narchivos",$narchivos);
		$tpl->assign("total_size",filesizeinfo($total_size));
	} else {
		if(empty($q)) $tpl->newBlock("NOHAYARCHIVOS");	
	}
	
	if(empty($q)) {
		$tpl->newBlock("CREARCARPETA");
		$tpl->assign("id_carpeta",$id_carpeta);
	}
/*
	$tpl->newBlock("CREARCARPETA");
	$query = "SELECT * FROM carpetas ORDER BY nombre_carpeta ASC ";	
	$result = mysql_query($query);
	if($result && mysql_num_rows($result)>0) {
		$tpl->newBlock("LISTADOCARPETAS");	
		$size = db::ExecuteScalar("SELECT COALESCE(SUM(size),0) FROM archivos");
		$tpl->assign("size_all",filesizeinfo($size));
		while($fila = mysql_fetch_assoc($result)) {
			$tpl->newBlock("LCITEM");
			$id_carpeta = $fila['id_carpeta'];
			foreach($fila as $key => $value) {
				$tpl->assign($key,$value);	
			}
			$size = db::ExecuteScalar("SELECT COALESCE(SUM(size),0) FROM archivos WHERE id_carpeta = '$id_carpeta'");
			$tpl->assign("size_total",filesizeinfo($size));
		}
		
	} else {
		$tpl->newBlock("SINRESULTADOS");	
	}
	*/
	if(empty($q)) {
		$tpl->newBlock("FORMSUBIR");
		$tpl->assign("id_carpeta",$id_carpeta);
		$tpl->assign("id_persona",$id_persona);
	}
	$tpl->newBlock("PERMISOLOGIA");
	$query = "	SELECT 
				archivos_personas.id_persona,
				personas.nombre_persona
				FROM archivos_personas
				INNER JOIN personas ON archivos_personas.id_persona = personas.id_persona
				WHERE archivos_personas.id_profesor = '$id_profesor'
				ORDER BY personas.nombre_persona ASC
				";
	$result = mysql_query($query);
	if($result && mysql_num_rows($result)>0) {
		while($fila = mysql_fetch_assoc($result)) {
			$tpl->newBlock("PERMISOLOGIAITEM");	
			foreach($fila as $k => $v) $tpl->assign($k,$v);
		}
	}	
	
	$tpl->assignGlobal("id_profesor",$id_profesor);
	
	$tpl->Mostrar();
?>